专利摘要:
Laufzeitmessungen von Funktionen eines Computerprogramms (2) sind ein Instrument, um das Computerprogramm (2) dahingehend zu optimieren, dass die Ressourcen eines Computersystems (1) optimal genutzt werden. Die Laufzeitmessung einer oder mehrerer vorgegebener Funktionen muss auf schnelle und reproduzierbare Weise unter vorgegebenen Betriebsbedingungen des Computersystems (1) durchgeführt werden. Es wird ein Laufzeithandler (3) als Komponente des Computerprogramms (2) eingesetzt, welcher während der Ausführung des Computerprogramms (2) bei jedem Aufruf einer Funktion abfragt, ob es sich um die vorgegebene bzw. eine der vorgegebenen Funktionen handelt. Ist diese Bedingung erfüllt, so wird mittels einer Zeitstempel-Funktion (4) zu Beginn und Ende der Ausführung der Funktion eine Zeitinformation abgespeichert, wobei auch Unterbrechungen der Ausführung der Funktion erkannt und bei der Laufzeitmessung berücksichtigt werden. Unmittelbar nach der Messung übergibt der Laufzeithandler (3) die Zeitinformation an das erste Computersystem (1), wo diese gespeichert wird. Dadurch werden kostbare Speicherkapazitäten im Computersystem (1) eingespart. Die Erfindung ist insbesondere bei der Entwicklung von Computerprogrammen für den Betrieb von Echtzeitsystemen für die Steuerung von Motoren in der Automobiltechnik von Vorteil.Runtime measurements of functions of a computer program (2) are a tool for optimizing the computer program (2) in such a way that the resources of a computer system (1) are optimally utilized. The transit time measurement of one or more predetermined functions must be performed in a fast and reproducible manner under predetermined operating conditions of the computer system (1). A runtime handler (3) is used as a component of the computer program (2), which queries during the execution of the computer program (2) each time a function is called whether it is the specified or one of the predefined functions. If this condition is met, a time information is stored by means of a timestamp function (4) at the beginning and end of the execution of the function, and interruptions in the execution of the function are also recognized and taken into account in the transit time measurement. Immediately after the measurement, the runtime handler (3) transfers the time information to the first computer system (1) where it is stored. This saves valuable storage capacity in the computer system (1). The invention is particularly advantageous in the development of computer programs for the operation of real-time systems for the control of engines in automotive engineering.
公开号:DE102004028819A1
申请号:DE200410028819
申请日:2004-06-15
公开日:2006-01-12
发明作者:Reiner Lederle;Frank Queisser
申请人:Siemens AG;
IPC主号:G06F9-44
专利说明:
[0001] DieErfindung betrifft ein Verfahren und eine Anordnung zur Ermittlungund Übertragungvon Programmlaufzeiten, beispielsweise einer vorgegebenen Funktioneines Computerprogramms, das von einem Computersystem ausgeführt wird.Die Erfindung wird insbesondere eingesetzt in eingebetteten Systemen,beispielsweise Motorsteuerungsgeräten, in denen nur begrenzterSpeicher fürdie Speicherung von Messdaten zur Verfügung steht.TheThe invention relates to a method and an arrangement for detectionand transmissionprogram durations, for example, a predetermined functiona computer program that is executed by a computer system.The invention is used in particular in embedded systems,For example, engine control devices in which only limitedMemory forthe storage of measured data is available.
[0002] Laufzeitmessungenvon Funktionen werden eingesetzt, um Computerprogramme dahingehend zuoptimieren, dass die Ressourcen eines Computersystems optimal genutztwerden. Die Laufzeit einer Funktion ist diejenige Zeit, die einProzessor zum Abarbeiten der Funktion benötigt. Die Laufzeit gibt beispielsweiseAufschluss darüber,welcher Anteil der Prozessorkapazität durch das Abarbeiten einerbestimmten Funktion belegt wird.Delay measurementsFunctions are used to make computer programsoptimize the resources of a computer systembecome. The runtime of a function is the time that aProcessor needed to complete the function. The runtime is for exampleInformation aboutwhat proportion of the processor capacity by executing acertain function is occupied.
[0003] Insbesondereist diese Optimierung der Ressourcennutzung erforderlich bei derEntwicklung von Computerprogrammen für den Betrieb sogenannter Echtzeitsysteme.Bei Echtzeitsystemen sind Programme zur Verarbeitung anfallenderDaten ständig betriebsbereit,derart, dass die Verarbeitungsergebnisse innerhalb einer vorgegebenenZeitspanne verfügbarsind. Die Daten könnenje nach Anwendungsfall nach einer zeitlich zufälligen Verteilung oder zu vorherbestimmten Zeitpunkten anfallen (siehe z. B. DIN 44300).EspeciallyThis resource use optimization is required in theDevelopment of computer programs for the operation of so-called real-time systems.For real-time systems, programs are more likely to be processedData constantly ready,such that the processing results within a givenTime span availableare. The data candepending on the application, after a random distribution or beforecertain times (see, for example, DIN 44300).
[0004] BeiEchtzeitsystemen handelt es sich häufig um sogenannte "eingebettete Systeme", welche komplexeSteuerungs- und Datenverarbeitungsaufgaben in technischen Systemen übernehmen.atReal-time systems are often so-called "embedded systems," which are complexTake over control and data processing tasks in technical systems.
[0005] EingebetteSysteme werden meist durch eine Integration spezieller Hardwaremit Prozessoren und Software realisiert. Derartige Systeme werden beispielsweisefür dieSteuerung von Motoren in der Automobiltechnik eingesetzt. Mehrereeingebettete Systeme könnenmiteinander verbunden sein und eine Einheit bilden, wobei für die Verbindungbeispielsweise ein sogenannter CAN-Bus (Controller Area Network)verwendet werden kann.turned BetteSystems are usually through an integration of special hardwarerealized with processors and software. Such systems become, for examplefor theControl of motors used in automotive technology. Severalembedded systems canbe connected to each other and form a unit, wherein for the connectionFor example, a so-called CAN bus (Controller Area Network)can be used.
[0006] Aufeinem Computersystem oder Prozessor können dabei mehrere unabhängige Programmeablaufen, welche sich die Rechenzeit eines Prozessors teilen. Häufig sinddie Programme in abgrenzbare Einzelfunktionen unterteilt (Funktionen).Oft werden zur Erfüllungeiner bestimmten Aufgabe mehrere Funktionen hintereinander ausgeführt. ZumAbarbeiten einer solchen Aufgabe können die zur Abarbeitung benötigten Funktionenin einem so genannten Task gebündeltwerden. Diese Tasks enthalten somit Funktionen und rufen diese auf.Im Folgenden werden, wie in der Praxis üblich, die Begriffe "Funktion" und "Task" (oder auch Interrupt,Exception, Unterprogramm, Routine, Aggregat, Objekt, Codeblock,Textblock) weitgehend synonym verwendet. In Echtzeitsystemen sindComputerprogramme häufigso ausgestaltet, dass die Tasks in regelmäßigen Zeitabständen (z.B. alle 10 Millisekunden) wiederholt aufgerufen werden. Die Periodeder Wiederholungen wird oft als "Zeitscheibe" bezeichnet.OnA computer system or processor can have several independent programsexpire, which share the computing time of a processor. Frequentlythe programs are divided into separable individual functions (functions).Often become fulfillmentperform several functions in succession for a given task. To theProcessing such a task may require the functions required for executionbundled in a so-called taskbecome. These tasks thus contain functions and call them up.In the following, as usual in practice, the terms "function" and "task" (or interrupt,Exception, subroutine, routine, aggregate, object, code block,Text block) used largely synonymously. In real-time systems areComputer programs oftendesigned so that the tasks at regular intervals (eg.B. every 10 milliseconds) are called repeatedly. The periodThe repetition is often referred to as a "time slice".
[0007] MehrereTasks könnenentweder unabhängigoder voneinander abhängigparallel laufen. Da sich i. d. R. mehrere Tasks die Rechenzeit einesProzessors teilen, werden Tasks häufig in mehrere Teilabschnittezerlegt, die sequenziell oder verschachtelt abgearbeitet werden.Dabei kann bestimmten Tasks eine höhere Priorität als anderenTasks zugewiesenen werden, so dass bei Ausführung eines höher priorisiertenTasks die Ausführungeines Tasks mit niedrigerer Priorität unterbrochen wird. Zusätzlich kann dieAbarbeitung des Computerprogramms auch durch besondere externe oderinterne Ereignisse (z. B. durch die Änderung eines Spannungssignalsam Eingang einer Schnittstelle oder durch ein ungültiges Ergebnisbei der Abarbeitung einer Aufgabe) unterbrochen werden. DerartigeaußerordentlicheUnterbrechungen werden als Interrupts bezeichnet.SeveralTasks caneither independentlyor interdependentrun parallel. Since i. d. R. several tasks the computing time of oneSharing processors often turns tasks into multiple sectionsdecomposed, which are processed sequentially or nested.Certain tasks may have a higher priority than othersTasks are assigned, so when running a higher priorityTasks the executiona task with a lower priority is interrupted. In addition, theProcessing of the computer program also by special external orinternal events (eg by changing a voltage signalat the input of an interface or by an invalid resultduring the execution of a task). suchextraordinaryInterrupts are called interrupts.
[0008] Infolgedieser komplexen Sequenzierung und Verschachtelung mehrerer Tasksbei gleichzeitiger Notwendigkeit der Abarbeitung von Aufgaben innerhalbfest vorgegebener Zeitspannen kommt der Optimierung der Ressourcennutzungin Echtzeitsystemen eine besondere Bedeutung zu. Für dieseOptimierung wiederum ist es erforderlich, die Laufzeiten der wichtigstenoder sogar aller Funktionen zu ermitteln.As a resultthis complex sequencing and nesting of multiple taskswhile at the same time requiring the execution of tasks withinfixed periods of time comes to optimize the use of resourcesin real-time systems a special meaning too. For thisOptimization, in turn, requires the maturities of the most important onesor even all functions.
[0009] ZurDurchführungvon Laufzeitmessungen einer vorgegebenen Funktion von Computerprogrammenwerden in der Praxis häufigsogenannte "Zeitstempel-Funktionen" eingesetzt. Beidiesen Verfahren wird der ursprünglicheProgrammcode des Computerprogramms so modifiziert, dass vor und nachder Ausführungder vorgegebenen Funktion (wobei es sich sinngemäß auch um beliebige Textblöcke bzw.Codeblöckeim Programmcode handeln kann, welche keine in sich geschlossenenFunktionen darstellen, s. o.) im Programmcode zusätzliche Befehlselementeeingefügtwerden. Diese zusätzlichenBefehlselemente enthalten jeweils einen Aufruf einer Zeitstempel-Funktion.Diese Zeitstempel-Funktion speichert bei jedem Aufruf eine Zeitinformationin einen Datenspeicher, sowie weitere Daten, wie zum Beispiel eineIdentifikationsnummer der vorgegebenen Funktion oder den Ereignistyp(z. B. ob es sich um den Start oder das Ende des Abarbeitens dervorgegebenen Funktion handelt).toexecutionruntime measurements of a given function of computer programsbecome common in practiceso-called "timestamp functions" used. atthis procedure becomes the original oneProgram code of the computer program modified so that before and afterthe executionthe given function (which also applies mutatis mutandis to any text blocks orcode blockscan act in program code, which is not self-containedRepresent functions, s. o.) in the program code additional command elementsaddedbecome. This extraCommand elements each contain a call to a timestamp function.This timestamp function saves time information each time it is calledinto a data store, as well as other data, such as aIdentification number of the given function or the event type(eg whether it is the start or the end of the execution of thegiven function).
[0010] Derso mit zusätzlichenBefehlselementen zur Laufzeitmessung einer vorgegebenen Funktion verseheneProgrammcode des Computerprogramms wird dann in einen maschinenlesbarenCode übersetzt.Einen derartig modifizierten Code bezeichnet man als "instrumentiert", wobei man zwischen "teilinstrumentierten" Computerprogrammenunterscheidet, bei denen lediglich bei Ausführung einer einzigen oder mehrererFunktionen des Programmcodes die Zeitstempel-Funktion aufgerufenwird, und "vollständig instrumentierten" Computerprogrammen,bei denen bei jedem Funktionsaufruf auch ein Aufruf der Zeitstempel-Funktion erfolgt.Of theso with additionalCommand elements for running time measurement of a given function providedProgram code of the computer program is then converted into a machine-readable oneCode translated.Such a modified code is referred to as "instrumented", where one between "teilinstrumentierten" computer programsdiffers in which only when executing a single or multipleFunctions of the program code called the timestamp functionand "fully instrumented" computer programs,in which a call of the timestamp function takes place with every function call.
[0011] DerzeitigeZeitstempelverfahren haben einige für die Optimierung komplexerProgramme zur Steuerung von Echtzeitsystemen entscheidende Nachteile.Ein wesentlicher Nachteil besteht darin, dass die Unterbrechungder Abarbeitung der vorgegebenen Funktion durch andere Funktionenoder Interrupts nicht berücksichtigtwird. Durch das beschriebene Verfahren zur Laufzeitmessung erhält man dahergrößere Messwerte(Bruttolaufzeiten) als die tatsächlicheNettolaufzeit der Funktionen. Daher wird die gemessene Laufzeitin der Praxis häufigmit einem Korrekturfaktor, welcher kleiner ist als 1 (z. B. 0,8für eineBelastung durch Unterbrechungen von 20%) multipliziert. Dieser Korrekturfaktorlässt sich jedochnicht eindeutig bestimmen und ist häufig lediglich ein stark systemabhängiger Erfahrungswert. DieReproduzierbarkeit derartiger Messungen ist dementsprechend gering,und die Streuung der Messwerte bei wiederholter Messung entsprechend hoch.currentTimestamping methods have some more complex for optimizationPrograms for controlling real-time systems have decisive disadvantages.A major disadvantage is that the interruptionthe execution of the given function by other functionsor interrupts not taken into accountbecomes. The described method for transit time measurement is therefore obtainedlarger readings(Gross lives) than the actualNet runtime of the functions. Therefore, the measured runtimein practice oftenwith a correction factor which is less than 1 (eg 0.8for oneLoad due to interruptions of 20%) multiplied. This correction factorcan be, howevernot clearly determine and is often only a strong system-dependent empirical value. TheReproducibility of such measurements is correspondingly low,and the scattering of the measured values with repeated measurement is correspondingly high.
[0012] Invielen Fällenwird bei Anwendung von Zeitstempelverfahren daher das Computerprogramm und/odersogar das gesamte Computersystem so modifiziert, dass die Zahl derUnterbrechungen des Ablaufs der zu messenden Funktion minimiertwird. Dies kann beispielsweise durch Ausschalten von Interruptsgeschehen. Durch diese Modifikation der Hardware und Software istdas System jedoch zumeist so stark verändert, dass die gemessene Laufzeitder Funktion nicht der Laufzeit im realen Betrieb des Gesamtsystemsentspricht. Weiterhin kann eine solche Messung nicht im realen Systemerfolgen (z. B. im Auto).Inmany casesTherefore, when using the time stamp method, the computer program and / oreven the entire computer system is modified so that the number ofInterruptions of the sequence of the function to be measured minimizedbecomes. This can be done, for example, by switching off interruptshappen. Through this modification of the hardware and software isHowever, the system mostly changed so much that the measured runtimethe function is not the runtime in real operation of the overall systemequivalent. Furthermore, such a measurement can not be done in the real systemdone (eg in the car).
[0013] Weiterhinberücksichtigtein solches Vorgehen nicht die Umgebungsbedingungen des Systems. DieLaufzeit bestimmter Funktionen in Echtzeitsystemen hängt jedochu. U. stark von be stimmten Systemparametern, wie zum Beispiel analogenoder digitalen externen Signalen an einer Schnittstelle des Systems,ab. Diese Unzulänglichkeitverringert die Reproduzierbarkeit der Messung zusätzlich.Fartherconsideredsuch a procedure does not affect the environmental conditions of the system. TheHowever, the lifetime of certain functions in real-time systems dependsu. U. strongly of certain system parameters, such as analogor digital external signals at an interface of the system,from. This inadequacyreduces the reproducibility of the measurement additionally.
[0014] Zudemist das beschriebene Verfahren außerordentlich zeitaufwändig undbenötigthohe Rechnerkapazitätenund einen großenSpeicher. Typische Programme fürEchtzeitsysteme zur Steuerung komplexer Prozessabläufe können mehreretausend Funktionen enthalten.moreoverthe method described is extremely time consuming andneededhigh computer capacitiesand a big oneStorage. Typical programs forReal-time systems for controlling complex process sequences can be severalcontain a thousand functions.
[0015] Diein eingebetteten Systemen zur Verfügung stehenden Datenspeichersind jedoch in der Regel nicht ausreichend, um Zeitinformationenfür alleFunktionen speichern zu können.Beispielsweise handelt es sich bei den Datenspeichern in eingebettetenSystemen ohne Speichererweiterung um Puffer mit einer Speicherkapazität von ca.35 kByte, was ca. 4400 Zeitinformationen entspricht. Dieser Speicher wirdjedoch auch fürdie Ausführungdes Computerprogramms verwendet, so dass der für die Speicherung der Zeitinformationenzur Verfügungstehende Speicherplatz zusätzlichreduziert ist. In typischen Motorsteuerungssystemen werden jedocheinige tausend Funktionen verwendet, die stark verschachtelt ausgeführt werden,z. B. jeweils in Sequenzen, deren Länge im Bereich weniger Mikrosekundenliegt. Bereits nach einer Zeitscheibe von 10 Millisekunden entstehtauf diese Weise füreine Steuerungssoftware also eine Datenmenge von ca. 10.000 Zeitinformationen,wobei die zusätzlichenUnterbrechungen durch Interrupts (z. B. 30 Unterbrechungen in einer Millisekundein typischen Motorsteuerungssystemen) noch nicht berücksichtigtsind. Die Datenspeicher in typischen Echtzeitsystemen können alsolediglich Informationen einer einzelnen oder einiger weniger Funktionenaufnehmen, und dies auch lediglich für eine Zeitdauer von eineroder wenigen Zeitscheiben.Thedata storage available in embedded systemshowever, are usually not sufficient to provide time informationfor allSave functions.For example, the datastores are embeddedSystems without memory extension to buffers with a storage capacity of approx.35 kbytes, which corresponds to approx. 4400 pieces of time information. This memory willbut also forexecutionused by the computer program, allowing for the storage of time informationto disposaladditional storage spaceis reduced. However, in typical engine control systemsuses a few thousand functions that are executed heavily nested,z. B. each in sequences whose length is in the range of a few microsecondslies. Already after a time slice of 10 milliseconds arisesthat way fora control software so a data amount of about 10,000 time information,the additional onesInterruptions by interrupts (eg 30 interrupts in one millisecondin typical engine control systems) not yet consideredare. The data storage in typical real-time systems can thusonly information of a single or a few functionsrecord, and only for a period of oneor a few time slices.
[0016] Prinzipiellmüsstealso nach dem oben beschriebenen Verfahren für jede einzelne Funktion zunächst derProgrammcode instru mentiert werden, dann in einen maschinenlesbarenCode übersetzt werden(mit einem Zeitaufwand von jeweils ca. 10 Minuten), dann auf demEchtzeitsystem ausgeführt werdenund dann müsstendie gespeicherten Zeitinformationen gesichtet und ausgewertet werden.Ein derartiges Verfahren kann fürein einzelnes Echtzeitsystem mit mehreren tausend Funktionen mehrere Wochenin Anspruch nehmen.in principleshouldSo according to the method described above for each individual function, first theProgram code be written, then in a machine-readableCode to be translated(with a time of about 10 minutes each), then on theReal-time system to be executedand then have tothe stored time information is viewed and evaluated.Such a method can be used fora single real-time system with several thousand functions several weekstake advantage of.
[0017] Aufgabeder vorliegenden Erfindung ist es, die Möglichkeiten von Laufzeitmessungenvon Funktionen zu verbessern, insbesondere für Computerprogramme, die aufeingebetteten Systeme mit kleinem Arbeitsspeicher ausgeführt werden.taskThe present invention is the possibilities of transit time measurementsof functions, especially for computer programs running onEmbedded systems running on a small amount of memory.
[0018] DieseAufgabe wird durch die Erfindungen mit den Merkmalen der unabhängigen Ansprüche gelöst. VorteilhafteWeiterbildungen der Erfindungen sind in den Unteransprüchen gekennzeichnet.TheseThe object is achieved by the inventions having the features of the independent claims. advantageousFurther developments of the inventions are characterized in the subclaims.
[0019] Eswird ein Verfahren zur Laufzeitmessung einer vorgegebenen Funktioneines von einem ersten Computersystem ausgeführten ersten Computerprogrammsvorgeschlagen. Dabei gibt ein zweites Computerprogramm (Offline-Komponente),welches auf einem zweiten Computersystem ausgeführt wird, dem ersten Computerprogrammvor, welche Funktion die vorgegebene Funktion ist. Daraufhin werden aufdem ersten Computersystem die folgenden Schritte mit einer Anzahlvon Wiederholungen wiederholt durchgeführt: Wenn das erste Computerprogrammeine erste Funktion aufruft, so ruft es zu Beginn und zum Ende derAbarbeitung dieser ersten Funktion eine zweite Funktion (Laufzeithandler)auf. Der Laufzeithandler prüft,ob die erste Funktion die vorgegebene Funktion ist und ruft, soferndiese Bedingung erfülltist, eine dritte Funktion (Zeitstempel-Funktion) auf. Die Zeitstempel-Funktionstellt mindestens eine Zeitinformation zur Verfügung. Der Laufzeithandler übergibtdiese mindestens eine Zeitinformation unmittelbar, d. h. nach jedemAufruf, an das zweite Computersystem oder an ein weiteres Computersystem.It is a method for measuring the transit time of a given function of one of a first Computer system proposed first computer program. In this case, a second computer program (offline component), which is executed on a second computer system, gives the first computer program which function is the predetermined function. Then, on the first computer system, the following steps are repeatedly performed with a number of repetitions: When the first computer program calls a first function, it calls a second function (runtime handler) at the beginning and at the end of the execution of this first function. The runtime handler checks whether the first function is the specified function and, if this condition is fulfilled, calls a third function (time stamp function). The timestamp function provides at least one time information. The runtime handler transfers this at least one time information immediately, ie after each call, to the second computer system or to another computer system.
[0020] Beidem ersten Computerprogramm kann es sich beispielsweise um ein – wie obenbeschrieben – vollständig instrumentiertesProgramm in maschinenlesbarer Form handeln. Im Gegensatz zum oben beschriebenenVerfahren wird jedoch nicht notwendigerweise bei Aufruf jeder Funktionauch eine Zeitstempel-Funktionaufgerufen, sondern es wird zunächstder Laufzeithandler aufgerufen. Dieser überprüft beispielsweise anhand einerIdentifikationsnummer der aufgerufenen Funktion, ob es sich beider aufgerufenen Funktion um die Funktion handelt, deren Laufzeitgemessen werden soll. Nur wenn dies der Fall ist, wird die Zeitstempel-Funktionaufgerufen. Es könnenalternativ auch mehrere Funktionen gleichzeitig vorgegeben werden.Der Laufzeithandler überprüft dannjeweils, ob es sich bei der aufgerufenen Funktion um eine der vorgegebenenFunktionen handelt und ruft, wenn dies der Fall ist, die Zeitstempel-Funktionauf.atFor example, the first computer program may be a - as abovedescribed - fully instrumentedProgram in machine-readable form. Unlike the one described aboveHowever, the procedure is not necessarily called upon every functionalso a timestamp functionbut it will be firstthe runtime handler is called. This checks, for example, based on aIdentification number of the called function, whether it isthe called function is the function whose runtimeto be measured. Only if this is the case will the timestamp function become activecalled. It canAlternatively, several functions can be specified simultaneously.The runtime handler then checksin each case, whether the called function is one of the given onesFunctions acts and, if so, calls the timestamp functionon.
[0021] DasZurverfügungstellender Zeitinformation durch die Zeitstempelfunktion kann beispielsweise durchAbspeichern in einen Datenspeicher (beispielsweise durch ein Zwischenspeichernin einem Datenpuffer des ersten Computersystems) oder durch Übergabeeines Zahlenwertes an den aufrufenden Laufzeithandler erfolgen.Der Laufzeithandler wiederum übergibtdiese Daten unmittelbar an das zweite Computersystem, wo sie beispielsweisein einem Datenspeicher gespeichert werden können. Zusätzlich kann auch ein erneutesZwischenspeichern der Daten durch den Laufzeithandler, beispielsweise ineinem Datenpuffer, auf dem ersten Computersystem erfolgen.Theprovidingthe time information by the timestamp function can, for example, byStoring in a data memory (for example, by a cachingin a data buffer of the first computer system) or by handoverof a numerical value to the calling runtime handler.The runtime handler in turn passesThis data is sent directly to the second computer system, where it is, for examplecan be stored in a data store. In addition, a renewedCaching of the data by the runtime handler, for example ina data buffer, on the first computer system.
[0022] DieGestaltung der Zeitinformation kann von der Art des ersten Computersystemsabhängen.So kann beispielsweise die Zeitanzeige einer in das Computersystemintegrierten Uhr (Systemzeit) als Zeitinformation genutzt werden.Es kann aber auch beispielsweise das augenblickliche Stadium eines periodischenphysikalischen Vorgangs (z. B. die Winkelstellung der Kurbelwellein einem Motorsystem) als Zeitinformation abgespeichert werden.TheDesign of the time information may be of the type of the first computer systemdepend.For example, the time display in the computer systemintegrated clock (system time) can be used as time information.But it may also, for example, be the momentary stage of a periodic onephysical operation (eg the angular position of the crankshaftin an engine system) are stored as time information.
[0023] DasVerfahren hat den Vorteil, dass die Datenmenge erheblich reduziertwird. Nur die Daten der tatsächlichzu messenden Funktion werden erfasst und an das zweite Computersystem übergeben.Typischerweise werden diese Daten kurzfristig in einem Arbeitsspeicherdes ersten Computersystems zwischengespeichert. Da es sich dabeijedoch in der Regel lediglich um eine einzige oder einige wenigeZeitstempel-Informationen handelt, genügt insbesondere auch ein ineingebetteten Systemen typischerweise vorhandener kleiner Datenpuffer,also ein flüchtiger Speicherfür wenigeByte. Eine zusätzlicheErweiterung des Arbeitsspeichers der eingebetteten Systeme ist nichterforderlich, wodurch auch kostengünstige eingebettete Systemeeingesetzt werden können. DieZwischenspeicherung im Arbeitsspeicher des eingebetteten Systemserfolgt – wenn überhaupt – nur kurz,da die Informationen unmittelbar vom Laufzeithandler an das zweiteComputersystem übergebenwerden. Auf diese Weise werden wertvolle Ressourcen des eingebettetenSystems eingespart.TheMethod has the advantage that the amount of data significantly reducedbecomes. Only the data actuallyto be measured function are detected and passed to the second computer system.Typically, these data are stored in memory at short noticecached the first computer system. As it isbut usually only one or a fewTimestamp information is, in particular, also sufficient inembedded systems of typically existing small data buffers,So a volatile memoryfor a fewByte. An additionalExtension of the memory of the embedded systems is notwhich also requires inexpensive embedded systemscan be used. TheCaching in the memory of the embedded systemtakes place - if at all - only briefly,because the information is directly from the runtime handler to the secondHanded over computer systembecome. In this way, valuable resources of the embeddedSaved system.
[0024] Eskönnenauch mehrere Informationen in einem sogenannten "Multiplex-Verfahren" vom Laufzeithandler unmittelbar nachdem Zurverfügungstellendurch die Zeitstempel-Funktion (beispielsweise über einen bereits vorhandenenKommunikationskanal) an das zweite Computersystem übermitteltwerden. So könnenbeispielsweise die Zeitstempel von acht Funktionen gemessen undunmittelbar nach der Messung jeweils gemeinsam mit den Informationen, zuwelchen Funktionen diese Zeitstempel gehören, über einen Kommunikationskanal(z. B. einen CAN-Bus, ein K-Line, ein Dual Ported RAM o. ä.) an daszweite Computersystem übertragenwerden. Dies kann beispielsweise derart erfolgen, dass bestimmteOnline-Variablen erzeugt werden, in die der Laufzeithandler diejeweils aktuellen Zeitinformationen abspeichert. Die Offline-Komponenteanalysiert diese Online-Variablen beispielsweise in regelmäßigen Abständen, speichertdiese und gibt sie anschließendwieder fürdie nächsteMessung fürden Laufzeithandler frei.Itcanalso several information in a so-called "multiplex method" from the runtime handler immediately afterto make availableby the timestamp function (for example, over an existing one)Communication channel) transmitted to the second computer systembecome. So canFor example, the timestamps of eight functions are measured andimmediately after the measurement together with the information, toowhich functions these timestamps belong to, over a communication channel(eg a CAN bus, a K-Line, a Dual Ported RAM or similar) to thesecond computer system transferredbecome. This can be done, for example, such that certainOnline variables are generated in which the runtime handler thestores current time information. The offline componentfor example, analyzes these online variables at regular intervals, savesthese and then give themagain forthe nextMeasurement forthe runtime handler free.
[0025] DiesesMessverfahren, bei denen die erzeugten Zeitstempel unmittelbar nachihrer Messung an das zweite Computersystem übergeben werden, hat weiterhinden Vorteil, dass auch beispielsweise während des ungestörten Betriebeseines Motors (z. B. währendder Fahrt) Laufzeiten von Funktionen gemessen und angezeigt werdenkönnen.Da jeweils nur geringe Datenmengen vom eingebetteten Systemen andas zweite Computersystem übergebenwerden, bedeutet die Übergabeder Daten nur eine unwesentliche zeitliche Unterbrechung des Betriebs desersten Computersystems, also zum Beispiel des eingebetteten Systems.This measuring method, in which the generated time stamps are transferred to the second computer system immediately after their measurement, furthermore has the advantage that run times of functions can also be measured and displayed, for example during undisturbed operation of an engine (eg while driving) , Since only small amounts of data from the embedded systems to the second computer system who passed the transfer of data means only an insignificant temporal interruption of the operation of the first computer system, so for example, the embedded system.
[0026] EingebetteteSysteme (Echtzeitsysteme) verfügenhäufig über einensogenannten Sicherheitsrechner, welcher bei einer längeren Unterbrechung (z.B. infolge einer Übergabeeiner größeren Datenmengean das zweite Computersystem) einen Fehler detektiert und das eingebetteteSystem abschaltet. Bei dem beschriebenen Verfahren, bei dem jeweils nurkleine Datenmengen an das zweite Computersystem übergeben werden, ist dies jedochnicht der Fall. Der Sicherheitsrechner spricht auf die geringfügige Unterbrechunginfolge der Übertragungder kleinen Datenmengen nicht an, und der Betrieb des ersten Computersystemswird durch die Übergabeder Daten nicht unterbrochen. Eine Durchführung des Verfahrens während desnormalen Betriebs des ersten Computersystems (beispielsweise während der Fahrteines Kraftfahrzeugs) ist also möglich.So könnenz. B. Informationen überdie Laufzeiten bestimmter Funktionen auch während der Fahrt ausgewertet werden.embeddedSystems (real-time systems)often over oneso-called security computer, which at a longer interruption (z.B. as a result of a transfera larger amount of datato the second computer system) detects an error and the embedded oneSystem shuts off. In the described method, in which onlyHowever, small amounts of data are passed to the second computer system, this isnot the case. The safety calculator responds to the slight interruptionas a result of the transferthe small amounts of data and the operation of the first computer systemis through the transferthe data is not interrupted. An implementation of the method during thenormal operation of the first computer system (for example while drivinga motor vehicle) is therefore possible.So canz. B. Information aboutthe running times of certain functions are also evaluated while driving.
[0027] Weiterhinkann die Laufzeitmessung, da diese nun nicht mehr durch Speicherressourcenbegrenzt ist, prinzipiell übereinen unendlich langen Zeithorizont erfolgen. Es können beispielsweisekontinuierlich Laufzeiten bestimmter Funktionen gemessen werdenund z. B. als Funktion bestimmter Motorparameter, beispielsweiseder Drehzahl, insbesondere online grafisch dargestellt und ausgewertetwerden. Weiterhin könnendiese (insbesondere online zur Verfügung stehenden) Informationen über die Laufzeitenals Trigger fürweitere Messungen genutzt werden oder auch für Diagnosezwecke (wahlweise aufdem ersten Computersystem und/oder auch auf dem zweiten Computersystemund/oder auf weiteren Computersystemen) eingesetzt werden. So können beispielsweiseauf einem Motorsteuerungssystem sicherheitsrelevante Funktionen überwachtwerden. Dies macht sich insbesondere im Betrieb eines Testfahrzeugsvorteilhaft bemerkbar. Auch der Einsatz in Serienfahrzeugen istmöglich.Farthercan the runtime measurement, since these are no longer due to memory resourcesis limited, in principle overan infinite time horizon. It can, for examplecontinuously measured durations of certain functionsand Z. B. as a function of certain engine parameters, for examplethe speed, in particular online graphically displayed and evaluatedbecome. Furthermore you canthis information (especially available online) about the termsas a trigger forFurther measurements can be used or for diagnostic purposes (optional onthe first computer system and / or on the second computer systemand / or on other computer systems). So, for examplemonitors safety-related functions on an engine control systembecome. This is especially true in the operation of a test vehicleadvantageous noticeable. Also the use in production vehicles ispossible.
[0028] Einweiterer Vorteil besteht darin, dass, wenn nach Beendigung der Laufzeitmessungdie Laufzeit einer weiteren Funktion gemessen werden soll, die Instrumentierungdes Computerprogramms nicht mehr geändert werden muss. Der Laufzeithandler liestdie Information darüber,welche Funktion die vorgegebene Funktion ist (z. B. eine Identifikationsnummer)aus einem Datenspeicher. Alternativ kann auch der Laufzeithandlerim Programmcode so abgeändertwerden, dass in die Abfrage-Bedingungdie neue Funktion bzw. die Identifikationsnummer der neuen Funktioneingetragen wird, was einen erheblich geringeren Programmieraufwandals eine Änderungder Instrumentierung darstellt.OneAnother advantage is that, if after completion of the transit time measurementthe duration of another function is to be measured, the instrumentationof the computer program no longer needs to be changed. The runtime handler readsthe information aboutwhich function is the given function (eg an identification number)from a data store. Alternatively, the runtime handler canmodified in the program codebe that in the query conditionthe new function or the identification number of the new functionis registered, resulting in a significantly lower programming effortas a changerepresents the instrumentation.
[0029] Diewiederholte Durchführungdes Verfahrens mit einer vorgegebenen Anzahl von Wiederholungenbewirkt eine erhebliche Verbesserung der Genauigkeit und Reproduzierbarkeitder Laufzeitmessung. Die Laufzeit wird (z. B. 20 mal) wiederholtgemessen, so dass ein Mittelwert gebildet und statistische Informationen über dieStreuung der Messwerte gewonnen werden können.Therepeated executionthe process with a predetermined number of repetitionscauses a significant improvement in accuracy and reproducibilitythe transit time measurement. The runtime is repeated (eg 20 times)measured, so that formed an average and statistical information about theScattering of the measured values can be obtained.
[0030] Weiterhinist das beschriebene Verfahren sehr universell einsetzbar. Bei denZeitstempel-Funktionen handelt es sich häufig um kommerzielle Softwareprodukte.Will der Entwickler, z. B. aus Kostengründen oder aufgrund der Verfügbarkeiteines moderneren oder leistungsfähigerenProduktes, auf eine neue Zeitstempel-Funktion wechseln, so musstebislang die gesamte Instrumentierung des Computerprogramms an dieneue Zeitstempel-Funktion angepasst werden. Beispielsweise kanneine neue Zeitstempel-Funktion die Übergabe anderer Parameter erforderlichmachen. Die Verwendung des Laufzeithandlers hingegen vereinfachtdieses Verfahren erheblich. Bei Implementierung einer neuen Zeitstempel-Funktionmuss nun lediglich der Programmcode des Laufzeithandlers adaptiertwerden. Der Programmieraufwand wird dadurch stark reduziert.Fartheris the described method very universally applicable. BothTimestamping features are often commercial software products.Will the developer, z. B. for cost reasons or due to availabilitya more modern or powerful oneProduct, switch to a new timestamp feature, so had toSo far, the entire instrumentation of the computer program to thenew timestamp feature to be customized. For example, cana new timestamp function requires the passing of other parametersdo. The use of the runtime handler, however, simplifiedthis procedure considerably. When implementing a new timestamp functionNow only the program code of the runtime handler has to be adaptedbecome. The programming effort is greatly reduced.
[0031] Dieauf dem zweiten Computersystem ausgeführte Offline-Komponente gibt demauf dem ersten Computersystem ausgeführten ersten Computerprogrammvor, welche Funktion die vorgegebene Funktion ist. Somit kann insbesondereauf die Möglichkeitenzur Eingabe von Informationen durch einen Benutzer auf einem zweitenComputersystem zurückgegriffenwerden. Dies ist insbesondere bei eingebetteten Systemen von Vorteil,welche zumeist nicht überMittel zur grafischen Darstellung von Informationen (z. B. einenBildschirm) oder überMittel zur Dateneingabe (z. B. eine Tastatur) verfügen. Der Austauschvon Daten zwischen beiden Computersystemen kann beispielsweise über einBus-System erfolgen (z. B. überein im Automobilsektor übliches Applikationssystem).TheThe offline component running on the second computer system gives theon the first computer system running first computer programwhich function is the default function. Thus, in particularon the possibilitiesfor entering information by a user on a secondComputer system usedbecome. This is particularly advantageous in embedded systems,which mostly not overMeans for graphical representation of information (egScreen) or overMeans for inputting data (eg a keyboard). The exchangeof data between both computer systems, for example, via aBus system done (eg overan application system common in the automotive sector).
[0032] Daserste Computerprogramm auf dem ersten Computersystem und die Offline-Komponenteauf dem zweiten Computersystem könnenvollständig unabhängig voneinanderablaufen. Der Benutzer am zweiten Computersystem kann Funktionenauswählen,deren Laufzeit gemessen werden soll, ohne den Ablauf des erstenComputerprogramms am ersten Computersystem unterbrechen oder stören zu müssen. DieDatenübertragungzwischen beiden Computersystemen kann beispielsweise dadurch erfolgen, dassin die jeweiligen Computerprogramme in regelmäßigen Abständen Abfragen eingebaut werden,bei denen überprüft wird,ob an der Schnittstelle zum jeweiligen anderen Computersystem neueSignale (d. h. Informationen) anliegen.The first computer program on the first computer system and the offline component on the second computer system can run completely independently of each other. The user on the second computer system may select functions whose duration is to be measured without interrupting or interfering with the operation of the first computer program on the first computer system. The data transmission between the two computer systems can take place, for example, in that queries are built into the respective computer programs at regular intervals, in which it is checked whether new signals are present at the interface to the respective other computer system (i.e. H. Information).
[0033] Daszweite Computersystem übermitteltdem ersten Computersystem die Information darüber, welche Funktion bzw. welcheFunktionen in die Abfragebedingung aufgenommen werden sollen. Für diese Funktionenwird dann die Laufzeit gemessen. Z. B. kann, wenn allen Funktioneneines Programms bereits bei der Instrumentierung Nummern zugewiesen wordensind, die Information in Form einer Identifikationsnummer der ausgewählten Funktion übermittelt werden.Thetransmitted second computer systemthe first computer system, the information about which function or whichFunctions should be included in the query condition. For these functionsthen the running time is measured. For example, if all functionsa program has already been assigned in instrumentation numbersThe information is transmitted in the form of an identification number of the selected function.
[0034] DieVerwendung der Offline-Komponente auf dem zweiten Computersystemist insbesondere von Vorteil, wenn die Laufzeit vieler oder sogaraller Funktionen eines Computerprogramms sukzessive gemessen werdensoll. Das Verfahren erlaubt die Vorgabe einer Liste von Funktionen,deren Laufzeit nacheinander oder in einer vorgegebenen Reihenfolgegemessen wird und reduziert dadurch beispielsweise den Zeitaufwandfür dieMessung aller Funktionen eines typischen eingebetteten Systems von mehrerenWochen auf wenige Minuten.TheUsing the offline component on the second computer systemis particularly beneficial if the term of many or evenall functions of a computer program can be successively measuredshould. The method allows the specification of a list of functions,their term consecutively or in a given orderis measured and thereby reduces, for example, the time requiredfor theMeasurement of all functions of a typical embedded system of severalWeeks to a few minutes.
[0035] Beieiner vorteilhaften Weiterbildung des Verfahrens überprüft der Laufzeithandlerzusätzlich, obmindestens ein Signal eine vorgegebene Bedingung erfüllt. Beidiesem Signal kann es sich beispielsweise um ein elektrisches Signalan einer Schnittstelle des Computersystems handeln.atan advantageous development of the method checks the runtime handlerin addition, whetherat least one signal fulfills a predetermined condition. atThis signal may be, for example, an electrical signalact on an interface of the computer system.
[0036] DieseWeiterbildung ist insbesondere in echtzeitgesteuerten eingebettetenSystemen von Vorteil, die zur Steuerung komplexer Prozessabläufe verwendetwerden. In derartigen Systemen kann die Laufzeit der Funktionenoder Tasks des Computerprogramms stark von bestimmten Systemparametern,wie z. B. analogen oder digitalen externen Signalen an einer Schnittstelledes Computersystems abhängen.Bei den externen Signalen kann es sich z. B. um die von einem odermehreren Sensoren an das Computersystem übermittelten Informationenhandeln. Diese Informationen beschreiben den Betriebszustand oderdie Umgebungsbedingungen des Gesamtsystems. Mit Hilfe der beschriebenenWeiterbildung der Erfindung könneneine oder mehrere spe zielle Umgebungsbedingung gewählt werden,bei denen die Laufzeit einer Funktion gemessen werden soll. DieReproduzierbarkeit des Verfahrens steigt dadurch erheblich, undes könnenauch komplexere Zusammenhängezwischen den Umgebungsbedingungen und der Funktionsweise des Computerprogrammsuntersucht werden.TheseFurther education is embedded in real-time controlled in particularSystems advantageous for controlling complex processesbecome. In such systems, the runtime of the functionsor tasks of the computer program heavily from certain system parameters,such as B. analog or digital external signals to an interfacedepend on the computer system.With the external signals it can be z. B. by one orinformation transmitted to the computer system by several sensorsact. This information describes the operating state orthe environmental conditions of the entire system. With the help of the describedDevelopment of the invention canone or more special ambient conditions are selected,where the runtime of a function is to be measured. TheReproducibility of the process increases considerably, andit canalso more complex relationshipsbetween the environmental conditions and the functioning of the computer programto be examined.
[0037] Diesist beispielsweise bei der Programmierung von Motorsteuerungsgeräten in derAutomobiltechnik, sog. ECUs (Engine Control Units), von entscheidendemVorteil, da diese Informationen von einer Vielzahl von Sensoren(z. B. Sauerstoffsensoren, Drucksensoren) verarbeiten müssen.Thisis for example in the programming of engine control devices in theAutomotive technology, so-called ECUs (Engine Control Units), of decisive importanceAdvantage, as this information from a variety of sensors(eg oxygen sensors, pressure sensors).
[0038] Beieiner weiteren Ausgestaltung des Verfahrens wird zusätzlich beijeder Unterbrechung der Ausführungder vorgegebenen Funktion zu Beginn und Ende der Unterbrechung dieZeitstempel-Funktion aufgerufen. Wiederum werden vom Laufzeithandlerunmittelbar die von der Zeitstempel-Funktion zur Verfügung gestelltenInformationen an das zweite Computersystem übergeben.ata further embodiment of the method is additionally atany interruption of executionthe given function at the beginning and end of the interruptionTimestamp function called. Again from the runtime handlerimmediately those provided by the timestamp functionPass information to the second computer system.
[0039] DieseWeiterbildung des Verfahrens berücksichtigt,dass, wie oben beschrieben, die Ausführung von Funktionen oder Tasksdurch das Computerprogramm häufigdurch höherpriorisierte Tasks oder Funktionen oder durch Interrupts unterbrochenwerden kann.TheseFurther development of the procedure,that, as described above, the execution of functions or tasksthrough the computer program frequentlythrough higherprioritized tasks or functions or interrupted by interruptscan be.
[0040] Durchdie beschriebene Weiterbildung des Verfahrens, welche auch Zeitinformationenbei Unterbrechung der Ausführungder vorgegebenen Funktion liefert, lässt sich die Nettolaufzeiteiner Funktion messen, ohne dass Interrupts ausgeschaltet, das Systemauf andere Weise modifiziert oder Korrekturfaktoren verwendet werdenmüssen.Die Nettolaufzeit berechnet sich aus der Differenz der Start- undStoppzeit der Ausführungder Funktion, abzüglichder Zeitspannen, währendderer die Ausführungder Funktion unterbrochen war. Die Genauigkeit und Reproduzierbarkeitder Messung lässtsich dadurch erheblich steigern. Dies ist insbesondere bei der Programmierungvon Echtzeitsystemen von Vorteil, bei denen die Ausführung einesComputerprogramms durch eine hohe Zahl von Interrupts unterbrochenwird, wie z. B. bei Motorsteuerungen in der Automobiltechnik (mit30–40Interrupts je Millisekunde).Bythe described development of the method, which also time informationwhen the execution is interruptedprovides the given function, the net runtime can bemeasure the function without interrupting the systemotherwise modified or correction factors usedhave to.The net running time is calculated from the difference between the start and end timesStop time of executionthe function, minusthe periods whilethat the executionthe function was interrupted. The accuracy and reproducibilitythe measurement leavesthereby significantly increase. This is especially true in programmingof real-time systems advantageous in which the execution of aComputer program interrupted by a high number of interruptsis, such. B. in engine controls in the automotive industry (with30-40Interrupts per millisecond).
[0041] Außer derInformation, an welcher Funktion bzw. an welchen Funktionen dieLaufzeitmessung durchgeführtwerden sollen, kann die Offline-Komponente auch weitere Informationenan das erste Computersystem übergeben.Beispielsweise kann die Offline-Komponente dem auf dem ersten Computersystemausgeführtenersten Computerprogramm zusätzlichdie Anzahl von Wiederholungen vorgeben.Except theInformation on which function or on which functions theRuntime measurement performedThe offline component can also provide additional informationpassed to the first computer system.For example, the offline component may be the one on the first computer systemexecutedfirst computer program in additionspecify the number of repetitions.
[0042] Fernergehörtzum Umfang der Erfindung ein Computerprogramm bzw. mehrere Computerprogramme,die bei Ablauf auf einem Computer oder Computer-Netzwerk das erfindungsgemäße Verfahrenin einer seiner Ausgestaltungen ausführen.Furtherbelongsto the scope of the invention, a computer program or several computer programs,when running on a computer or computer network, the inventive methodin one of its embodiments.
[0043] Weiterhingehörtzum Umfang der Erfindung ein Computerprogramm bzw. mehrere Computerprogrammemit Programmcode-Mitteln,um das erfindungsgemäße Verfahrenin einer seiner Ausgestaltungen durchzuführen, wenn das bzw. die Programmeauf einem Computer oder Computer-Netzwerk ausgeführt werden. Insbesondere können dieProgrammcode-Mittel auf einem computerlesbaren Datenträger gespeichertsein.Furthermore, the scope of the invention includes a computer program or several computer programs with program code means for carrying out the method according to the invention in one of its embodiments when the program or programs are executed on a computer or computer network. In particular, the Pro be stored on a computer-readable medium.
[0044] Außerdem gehört zum Umfangder Erfindung ein Datenträger,auf dem eine Datenstruktur gespeichert ist, die nach einem Ladenin einen Arbeits- und/oder Hauptspeicher eines Computers oder Computer-Netzwerkesdas erfindungsgemäße Verfahren ineiner seiner Ausgestaltungen ausführen kann.Also belongs to the scopethe invention a data carrier,on which a data structure is stored after a loadin a working and / or main memory of a computer or computer networkthe inventive method inone of its embodiments can perform.
[0045] Auchgehörtzum Umfang der Erfindung ein Computerprogramm-Produkt mit auf einem maschinenlesbarenTrägergespeicherten Programmcode-Mitteln, um das erfindungsgemäße Verfahrenin einer seiner Ausgestaltungen durchzuführen, wenn das Programm aufeinem Computer oder Computer-Netzwerk ausgeführt wird.Alsobelongsto the scope of the invention, a computer program product with on a machine-readablecarrierstored program code means to the inventive methodto perform in one of its embodiments when the program is upa computer or computer network is running.
[0046] Dabeiwird unter einem Computer-Programmprodukt das Programm als handelbaresProdukt verstanden. Es kann grundsätzlich in beliebiger Form vorliegen,so zum Beispiel auf Papier oder einem computerlesbaren Datenträger undkann insbesondere überein Datenübertragungsnetzverteilt werden.thereUnder a computer program product, the program is considered tradableProduct understood. It can basically be in any formso for example on paper or a computer-readable disk andcan in particular overa data transmission networkbe distributed.
[0047] Fernerwird die Aufgabe durch eine Anordnung gelöst, welche geeignete Mittelaufweist zur Ausführungdes oben beschriebenen Verfahrens.Furtherthe object is achieved by an arrangement which suitable meanshas for executionof the method described above.
[0048] ImFolgenden wird die Erfindung anhand von Ausführungsbeispielen näher erläutert, diein den Figuren schematisch dargestellt sind. Die Erfindung ist jedochnicht auf die Beispiele beschränkt.Gleiche Bezugsziffern in den einzelnen Figuren bezeichnen dabeigleiche oder funktionsgleiche bzw. hinsichtlich ihrer Funktioneneinander entsprechende Elemente. Im Einzelnen zeigt:in theThe invention will be explained in more detail below with reference to exemplary embodiments whichare shown schematically in the figures. However, the invention isnot limited to the examples.The same reference numerals in the individual figures indicatesame or functionally identical or with regard to their functionscorresponding elements. In detail shows:
[0049] 1:eine Anordnung zur Laufzeitmessung einer Funktion auf einem echtzeitgesteuertenComputersystem zur Motorsteuerung; 1 an arrangement for measuring the transit time of a function on a real-time-controlled computer system for engine control;
[0050] 2:einen Ablaufplan eines Verfahrens zur Laufzeitmessung von Funktioneneines Motorsteuerungsprogramms; 2 Fig. 3 is a flowchart of a method for measuring the transit time of functions of an engine control program;
[0051] 3:einen Ablaufplan eines Laufzeithandlers. 3 : a flowchart of a runtime handler.
[0052] In 1 istein Beispiel einer bevorzugten Anordnung dargestellt, mit der dieLaufzeit von einer oder mehreren Funktionen eines auf einem Motorsteuerungssystem 1 ausgeführten Motorsteuerungsprogramms 2 gemessenwerden kann. Bei dem Motorsteuerungssystem 1 handelt essich in diesem Beispiel um ein typisches echtzeitgesteuertes System. DasMotorsteuerungsprogramm 2 weist als Komponenten einen Laufzeithandler 3 undeine Zeitstempel-Funktion 4 auf.In 1 an example of a preferred arrangement is shown, with which the transit time of one or more functions of an engine control system 1 executed engine control program 2 can be measured. In the engine control system 1 this example is a typical real-time controlled system. The engine control program 2 has a runtime handler as components 3 and a timestamp function 4 on.
[0053] DasMotorsteuerungssystem 1 weist weiterhin einen kleinen Datenpuffer 5 miteiner Speicherkapazitätvon 35 kByte zur Zwischenspeicherung der während einer Laufzeitmessungvon der Zeitstempel-Funktion 4 generierten Informationenauf, wobei es sich beispielsweise um Zeitinformationen, um Identifikationsnummernder Funktionen oder um Informationen darüber, ob die gespeicherten Zeitinformationensich auf den Start oder das Ende der Abarbeitung einer Funktionbeziehen, handeln kann. Wie oben beschrieben, kann jedoch von diesen35 kByte nur ein kleiner Teil von wenigen Byte für die Speicherung der Laufzeitinformationengenutzt werden, da dieser kleine Datenpuffer 5 gleichzeitigfür dieAusführungdes Motorsteuerungsprogramms 2 genutzt wird.The engine control system 1 also has a small data buffer 5 with a storage capacity of 35 kByte for buffering during a runtime measurement of the time stamp function 4 generated information, which may be, for example, time information, identification numbers of the functions or information about whether the stored time information related to the start or end of the execution of a function. As described above, however, only a small part of a few bytes of this 35 kbyte can be used for the storage of the runtime information since this small data buffer 5 at the same time for the execution of the engine control program 2 is being used.
[0054] DasMotorsteuerungssystem 1 ist über eine Schnittstelle 6 miteinem Motorsystem oder einer Motorsimulations-Einrichtung verbunden,welche hier nicht dargestellt ist. Über diese Schnittstelle 6 können externeSignale empfangen werden, welche beispielsweise Informationen über denBetriebszustand des Motorsystems (z. B. Drehzahl, Betriebszustand derLambdaregelung, Betriebszustand der Einspritzung) enthalten können. Beidiesen Informationen kann es sich beispielsweise um Sensorsignale(z. B. ein elektrisches Signal eines Sauerstoffsensors) handeln.The engine control system 1 is via an interface 6 connected to an engine system or an engine simulation device, which is not shown here. About this interface 6 External signals can be received, which may contain, for example, information about the operating state of the engine system (eg speed, operating state of the lambda control, operating state of the injection). This information may, for example, be sensor signals (eg an electrical signal of an oxygen sensor).
[0055] DasMotorsteuerungssystem 1 weist außerdem einen Sicherheitsrechner 7 auf.Der Sicherheitsrechner 7 ist so ausgestaltet, dass er dieauf dem Motorsteuerungssystem 1 ausgeführten Rechnungen und Aktionenund die Einhaltung bestimmter zeitlicher Vorgaben bei der Ausführung überprüft. Zwarist dieser Sicherheitsrechner fürdie Ausführungdes oben beschriebenen Verfahrens nicht erforderlich. Seine besonderenEigenschaften und insbesondere die Tatsache, dass der Sicherheitsrechnerbei der Übertragunggrößere Datenmengeneine Fehlermeldung generieren würde,müssenjedoch bei der Entwicklung von Computerprogrammen für derartige Systemeberücksichtigtwerden.The engine control system 1 also has a security calculator 7 on. The security computer 7 is designed to be on the engine control system 1 executed invoices and actions and compliance with certain timelines during execution. Although this security calculator for the execution of the method described above is not required. However, its particular characteristics, and in particular the fact that the security computer would generate an error message when transmitting larger amounts of data, must be taken into account in the development of computer programs for such systems.
[0056] DasMotorsteuerungssystem 1 ist außerdem verbunden mit einemPersonal Computer 8, auf dem ein zweites Computerprogramm(Offline-Komponente) 9 ausgeführt wird. Eine Tastatur 10 alsEingabemittel und ein Bildschirm 11 als bildliches Darstellungsmittelsind mit dem Personal Computer 8 verbunden. Der PersonalComputer 8 weist einen flüchtigen Speicher 12 undeinen Festplattenspeicher 13 auf. Die Verbindung des Motorsteuerungssystems 1 mitdem Personal Computer 8 erfolgt in diesem Beispiel über einenCAN-Bus 14.The engine control system 1 is also connected to a personal computer 8th on which a second computer program (offline component) 9 is performed. A keyboard 10 as an input device and a screen 11 as pictorial means of representation are with the personal computer 8th connected. The personal computer 8th has a volatile memory 12 and a disk space 13 on. The connection of the engine management system 1 with the personal computer 8th takes place in this example via a CAN bus 14 ,
[0057] In 2 istein Ablaufplan einer bevorzugten Ausgestaltung des Verfahrens dargestellt,wobei eine Anordnung gemäß 1 odereine in ihrer Funktion ähnlicheAnordnung verwendet wird. Die Interaktion zwischen der Offline-Komponente 9 aufdem Personal Computer 8 und dem Motorsteuerungsprogramm 2 aufdem Motorsteuerungssystem 1 ist in diesem Ablaufplan dadurchverdeutlicht, dass die Verfahrensschritte der Offline-Komponente 9 unterbrochen umrandetauf der rechten Seite dargestellt sind, und die Verfahrensschrittedes Motorsteuerungsprogramms 2 durchgezogen umrandet aufder linken Seite. Strichlierte Pfeile sollen den Austausch von Datenzwischen der Offline-Komponente 9 und dem Motorsteuerungsprogramm 2 symbolisieren.In 2 a flowchart of a preferred embodiment of the method is shown, wherein an arrangement according to 1 or a similar arrangement is used in their function. The interaction between the offline component 9 on the personal computer 8th and the engine control program 2 on the engine control system 1 is clarified in this flowchart by the fact that the process steps of the offline component 9 interrupted lines are shown on the right side, and the steps of the engine control program 2 solid lined on the left side. Dashed arrows are meant to exchange data between the offline component 9 and the engine control program 2 symbolize.
[0058] ZurErleichterung der Kommunikation zwischen dem Motorsteuerungsprogramm 2 undder Offline-Komponente 9 wird in diesem Beispiel das kommerziellverfügbareApplikationssystem INCA verwendet. Alternativ ließen sichauch andere Applikationssysteme, wie beispielsweise SAM2000, einsetzen.Dieses Applikationssystem wird auf dem Personal Computer 8 ausgeführt. DerProgrammcode des Motorsteuerungsprogramms 2 wird auf demPersonal Computer 8 in eine maschinenlesbare Form übersetzt(compiliert), durch einen Linker und/oder Locator zu einer lauffähigen Gesamtsoftwarezusammengefasst (gelinkt) und dann mit einem kommerziell verfügbaren Reprogrammiertoolin das Motorsteuerungssystem 1 geladen. Die Kommunikationzwischen Personal Computer 8 und Motorsteuerungssystem 1 erfolgtim weiteren überdas Applikationssystem INCA.To facilitate communication between the engine control program 2 and the offline component 9 In this example, the commercially available application system INCA is used. Alternatively, other application systems, such as SAM2000, could be used. This application system is on the personal computer 8th executed. The program code of the engine control program 2 will be on the personal computer 8th translated into a machine-readable form (compiled), summarized (linked) by a linker and / or locator to a running complete software and then with a commercially available Reprogrammiertool in the engine control system 1 loaded. The communication between personal computer 8th and engine control system 1 Furthermore, this is done via the application system INCA.
[0059] In 3 istein Ablaufplan eines bevorzugten Laufzeithandlers 3 dargestellt.Da zum Verständnis desin 2 dargestellten Verfahrens ein Verständnis derFunktionsweise des Laufzeithandlers 3 erforderlich ist,werden im Folgenden die 2 und 3 gemeinsambeschrieben.In 3 is a flowchart of a preferred runtime handler 3 shown. As for the understanding of in 2 an understanding of the operation of the runtime handler 3 is required, the following are the 2 and 3 described together.
[0060] InSchritt 202 in 2 erfolgt eine Initialisierungder Offline-Komponente 9 auf dem Personal Computer 8.Unabhängigdavon wird in Schritt 204 das Motorsteuerungsprogramm 2 gestartet.Wie oben bereits beschrieben, erfolgt der Start der Offline-Komponente 9 undder Start des Motorsteuerungsprogramms 2 völlig unabhängig voneinander undkann zu verschiedenen Zeitpunkten erfolgen. So kann beispielsweiseauch das Motorsteuerungsprogramm 2 im Dauerbetrieb betriebenwerden.In step 202 in 2 the initialization of the offline component takes place 9 on the personal computer 8th , Regardless, in step 204 the engine control program 2 started. As already described above, the start of the offline component takes place 9 and the start of the engine control program 2 completely independent from each other and can be done at different times. For example, the engine control program 2 be operated in continuous operation.
[0061] InSchritt 206 erfolgt mittels der Offline-Komponente 9 eineEingabe der Messbedingungen für dieLaufzeitmessungen. Der Benutzer kann mit Hilfe der Eingabemittelauf dem Personal Computer 8 auswählen oder vorgeben, welcheFunktion bzw. Funktionen des auf dem Motorsteuerungssystem 1 ausgeführten Motorsteuerungsprogramms 2 einerLaufzeitmessung unterzogen werden sollen. Er kann weiterhin für jede Funktioneine Anzahl von Wiederholungen (Zyklenzahl W) vorgeben, z. B. 20Wiederholungen, mit der die Laufzeitmessung dieser Funktion bzw.Funktionen wiederholt durchgeführtwerden soll.In step 206 takes place by means of the offline component 9 an input of the measuring conditions for the transit time measurements. The user can use the input means on the personal computer 8th Select or specify which function or functions of the on the engine control system 1 executed engine control program 2 to be subjected to a transit time measurement. He can also specify for each function a number of repetitions (number of cycles W), z. B. 20 repetitions, with the runtime measurement of this function or functions should be performed repeatedly.
[0062] Zusätzlich kannder Benutzer vorgeben, unter welchen Umgebungsbedingungen und inwelchem Betriebszustand die Laufzeitmessung jeder Funktion erfolgensoll, also beispielsweise bei welcher Motordrehzahl, ob die Lambdaregelungoder die Einspritzung aktiv sein soll oder Ähnliches. Die Messbedingungenlassen sich also genau definiert vorgeben, so dass die Reproduzierbarkeitder Laufzeitmessungen stark erhöhtwird. Die Eingabe weiterer Informationen durch den Benutzer istdenk bar, z. B. in Form von zusätzlichenAngaben, die späterdie Auswertung der Ergebnisse erleichtern.In addition, canthe user specify under which environmental conditions and inWhich operating state is the transit time measurement of each functionshould, so for example at which engine speed, whether the lambda controlor the injection is to be active or the like. The measuring conditionsSo you can pretend exactly defined, so that the reproducibilitythe transit time measurements greatly increasedbecomes. The input of further information by the user isthink bar, z. B. in the form of additionalInformation laterfacilitate the evaluation of the results.
[0063] InSchritt 208 erfolgt ein Start der Laufzeitmessung und eine Übergabeder Identifikationsnummer der ersten Funktion, deren Laufzeit gemessen werdensoll an das Motorsteuerungsprogramm 2. Weiterhin wird dieZyklenzahl W übergeben,welche die Anzahl der Wiederholungen der Laufzeitmessung für die vorgegebeneFunktion bestimmt. Diese Informationen werden über den CAN-Bus 14 andas Motorsteuerungssystem 1 übergeben, wo sie beispielsweiseim Datenpuffer 5 zwischengespeichert werden und so demLaufzeithandler 3 unmittelbar zur Verfügung stehen.In step 208 a start of the transit time measurement and a transfer of the identification number of the first function, whose transit time is to be measured to the engine control program takes place 2 , Furthermore, the number of cycles W is transmitted, which determines the number of repetitions of the transit time measurement for the given function. This information is transmitted via the CAN bus 14 to the engine control system 1 pass where, for example, in the data buffer 5 cached and so the runtime handler 3 immediately available.
[0064] Indiesem Ausführungsbeispielhandelt es sich bei dem Motorsteuerungsprogramm 2 um einen vollständig oderteilweise instrumentierten Programmcode, d. h. der Programmcodeist, wie oben beschrieben, mit Zusatzinformationen versehen. Bei derInstrumentierung wurden auch Identifikationsnummern an die Funktionendes Programmcodes vergeben, welche in einer Datenbank (hier nichtdargestellt) abgespeichert sein können. Die Offline-Komponente 9 speicherteine Identifikationsnummer einer vom Benutzer vorgegebenen Funktion ineinen flüchtigenDatenspeicher 12. Weiterhin können auch die vom Benutzerin Schritt 206 vorgegebenen Betriebsbedingungen, unterdenen die Laufzeit der jeweiligen Funktion zu messen ist, in denflüchtigenDatenspeicher 12 abgespeichert werden, sowie die ZyklenzahlW für jedezu messende Funktion. Überden CAN-Bus 14 werden die im Datenspeicher 12 gespeichertenInformationen in Schritt 208 dem Motorsteuerungsprogramm 2,insbesondere dem Laufzeithandler 3, zur Verfügung gestellt.In this embodiment, the engine control program is 2 a completely or partially instrumented program code, ie the program code is, as described above, provided with additional information. In the instrumentation also identification numbers were assigned to the functions of the program code, which can be stored in a database (not shown here). The offline component 9 stores an identification number of a user-specified function in a volatile data memory 12 , Furthermore, the user can also step in 206 specified operating conditions, under which the term of the respective function is to be measured, in the volatile data memory 12 are stored, and the number of cycles W for each function to be measured. Over the CAN bus 14 become the data store 12 stored information in step 208 the engine control program 2 , especially the term handler 3 , made available.
[0065] DieAusführungdes Motorsteuerungsprogramms 2 auf dem Motorsteuerungssystem 1 unddie Messung der Laufzeiten der Funktionen ist in Schritt 210 dargestelltund umfasst eine Anzahl von Einzelschritten (Schritte 212 bis 228).In Schritt 212 ruft das Motorsteuerungsprogramm 2 eineFunktion auf.The execution of the engine control program 2 on the engine control system 1 and the measurement of the running times of the functions is in step 210 and comprises a number of individual steps (steps 212 to 228 ). In step 212 calls the engine control program 2 a function on.
[0066] Nochbevor die Funktion abgearbeitet wird, wird in Schritt 214 derLaufzeithandler 3 aufgerufen.Even before the function is processed, in step 214 the term handler 3 called.
[0067] Dievom Laufzeithandler 3 durchgeführten Verfahrensschritte sindin 3 dargestellt. Nach Aufruf des Laufzeithandlers 3 (Schritt 310)wird zunächstin Schritt 312 abgefragt, ob es sich bei der aufgerufenenFunktion um die in Schritt 208 oder in Schritt 234 (sieheunten) von der Offline-Komponente 9 vorgegebene Funktionhandelt (sinngemäß kann essich dabei auch um eine von mehreren vorgegebenen Funktionen, z.B. eine Funktion aus einer vorgegebenen Liste von Funktionen, handeln).Ist dies nicht der Fall, so ist die Abarbeitung des Laufzeithandlers 3 beendet(Schritt 314).The runtime handler 3 performed process steps are in 3 shown. After calling the runtime handler 3 (Step 310 ) will first step in 312 queried whether the function called in step 208 or in step 234 (see below) from the offline component 9 This function can also be one of several predefined functions, eg a function from a predefined list of functions. If this is not the case, then the execution of the runtime handler is 3 finished (step 314 ).
[0068] Handeltes sich hingegen um die vorgegebene Funktion, so wird in Schritt 316 derAnlass abgefragt, aus dem der Laufzeithandler 3 aufgerufenwurde: Wurde der Laufzeithandler 3 aufgrund einer Unterbrechung,aufgrund eines Starts einer Funktion oder aufgrund eines Endes derAbarbeitung einer Funktion aufgerufen On the other hand, if it is the predetermined function, then in step 316 the occasion queried from which the term traders 3 was called: became the runtime handler 3 due to an interruption, due to a start of a function or due to an end of execution of a function called
[0069] Indiesem Fall handelt es sich gemäß Schritt 214um einen Aufruf des Laufzeithandlers 3 infolge eines Startseiner Funktion. Also fragt der Laufzeithandler 3 als nächstes inSchritt 318 ab, ob die vorgegebenen Messbedingungen (Umgebungsbedingungen)erfülltsind, also z. B. ob der Motor mit einer vorgegebenen Drehzahl arbeitet.In this case, step 214 is a call to the runtime handler 3 as a result of a start of a function. So the runtime handler asks 3 next in step 318 from whether the given measurement conditions (environmental conditions) are met, ie z. B. whether the engine is operating at a predetermined speed.
[0070] Sinddiese Messbedingungen nicht erfüllt,so ist die Abarbeitung des Laufzeithandlers 3 beendet (Schritt 314).Sind die Messbedingungen hingegen erfüllt, so wird dann in Schritt 320 dieZeitstempel-Funktion 4 aufgerufen. Diese generiert eineZeitinformation (Zeitstempel), welche in Schritt 322, gemeinsammit der Identifikationsnummer der aufgerufenen Funktion und einerInformation, dass es sich in Schritt 212 um den Start derAbarbeitung der Funktion handelte, an den Personal Computer 8 übergeben (symbolischdargestellt durch strich lierten Pfeil). Dort werden diese Informationendurch die Offline-Komponente 9 in Schritt 221 imFestplattenspeicher 13 abgespeichert.If these measurement conditions are not met, then the execution of the runtime handler is required 3 finished (step 314 ). On the other hand, if the measuring conditions are fulfilled, then in step 320 the timestamp function 4 called. This generates a time information (timestamp), which in step 322 , together with the identification number of the called function and an information that it is in step 212 at the start of the execution of the function acted on the personal computer 8th passed (symbolically represented by dashed arrow). There, this information is provided by the offline component 9 in step 221 in hard disk space 13 stored.
[0071] Dannerfolgt in Schritt 324 eine Abfrage, ob der Laufzeithandler 3 infolgeeines Starts oder Endes der Abarbeitung der Funktion aufgerufenwurde. Da es sich in Schritt 214 um einen Aufruf des Laufzeithandlers 3 beiBeginn der Abarbeitung der Funktion handelte, wird die Abarbeitungdes Laufzeithandlers 3 in diesem Fall nach Schritt 324 beendet(Schritt 314).Then done in step 324 a query as to whether the runtime handler 3 was called as a result of a start or end of the execution of the function. As it is in step 214 a call to the runtime handler 3 at the beginning of the execution of the function acted, the execution of the runtime handler 3 in this case after step 324 finished (step 314 ).
[0072] Alsnächsteswird der Verfahrensschritt 216 in 2 ausgeführt, d.h. die aufgerufene Funktion wird abgearbeitet. Die Funktion wiederumkann verschiedene Unterfunktionen aufrufen (z. B. wenn es sich beider Funktion um einen Task handelt, also eine Hauptfunktion, welchemehrere Funktionen umfasst). Das Programm kann so ausgestaltet sein, dassdie Laufzeiten dieser Unterfunktionen ebenfalls ermittelt werden.Es erfolgt vor und nach jedem Aufruf einer Unterfunktion ein Aufrufdes Laufzeithandlers 3. Im Abfrageschritt 312 in 3 erfolgtdann sinngemäß eine Abfrage,ob es sich bei der aufgerufenen Unterfunktion um eine der Unterfunktionen handelt,deren Laufzeit gemessen werden soll.Next, the process step 216 in 2 executed, ie the called function is executed. The function, in turn, can call various subfunctions (for example, if the function is a task, ie a main function that includes several functions). The program can be designed so that the durations of these subfunctions are also determined. Before and after each call of a subfunction, a call is made to the runtime handler 3 , In the query step 312 in 3 Then, mutatis mutandis, a query is made as to whether the called subfunction is one of the subfunctions whose runtime is to be measured.
[0073] Wirddie Abarbeitung der Funktion (bzw. einer der Unterfunktionen) unterbrochen,z. B. durch höherpriorisierte Funktionen oder Interrupts, so müssen ebenfalls Zeitstempelgeneriert werden. Wird eine Unterbrechung erkannt (Schritt 218),so wird eine aus den Verfahrensschritten 220 bis 224 bestehendeUnterbrechungsroutine durchgeführt.Dabei wird zunächstin Schritt 220 wieder der Laufzeithandler 3 aufgerufen.Parallel könnenbeispielsweise die Unterbrechungsebenen beispielsweise mit Hilfeeines Stacks fürdie Identifikationsnummern der jeweils unterbrochenen erfasst werden.Auf diese Weise lassen sich auch mehrere "geschachtelte" Unterbrechungen verfolgen.If the processing of the function (or one of the sub-functions) is interrupted, eg. B. by higher prioritized functions or interrupts, so timestamps must also be generated. If an interruption is detected (step 218 ), one of the process steps 220 to 224 existing interrupt routine performed. It is first in step 220 again the runtime handler 3 called. In parallel, for example, the interruption levels can be detected for example by means of a stack for the identification numbers of the respective interrupted. In this way, you can also track multiple "nested" breaks.
[0074] Zunächst wirddann in Schritt 312 in 3 wiederumabgefragt, ob es sich bei der unterbrochenen Funktion um die (bzw.eine) vorgegebene Funktion handelt. Ist dies nicht der Fall, sowird der Laufzeithandler 3 an dieser Stelle beendet (Schritt 314). Handeltes sich dagegen um die vorgegebene Funktion, so wird in Schritt 316 wiederder Grund des Aufrufs des Laufzeithandlers 3 abgefragt.Diesmal handelt es sich um einen Aufruf des Laufzeithandlers 3 infolgeeiner Unterbrechung. Daher wird nun nach der Abfrage in Schritt 316 derSchritt 326 ausgeführt. Analogzum Schritt 320 wird in Schritt 326 wiederum dieZeitstempel-Funktion 4 aufgerufen, welche eine Zeitinformationgeneriert. Die Zeitinformation wird, gemeinsam mit der Information,dass es sich um den Beginn einer Unterbrechung handelt, in Schritt 322 anden Personal Computer 8 übergeben (symbolisch dargestelltdurch strichlierten Pfeil). Dort werden diese Informationen durchdie Offline-Komponente 9 im Schritt 221 im Festplattenspeicher 13 abgespeichert. DieInformation, dass es sich um eine Unterbrechung handelt, kann z.B. in Form der Identifikationsnummer der unterbrechenden Funktionbzw. des Interrupts abgespeichert werden. Der Datenpuffer 5 aufdem Motorsteuerungssystem 1 kann, sofern er überhaupt benutztwurde, wieder gelöschtbzw. überschrieben werden.Nach Ausführungvon Schritt 322 ist die Abarbeitung des Laufzeithandlers 3 beendet(Schritt 314).First, then in step 312 in 3 queried again whether the interrupted function is the (or a) predetermined function. If this is not the case, the runtime handler becomes 3 finished at this point (step 314 ). On the other hand, if it is the predetermined function, then in step 316 again the reason for calling the runtime handler 3 queried. This time it's a call to the runtime handler 3 as a result of an interruption. Therefore, after the query in step 316 the step 326 executed. Analogous to the step 320 will be in step 326 turn the timestamp function 4 called, which generates a time information. The time information, along with the information that it is the beginning of an interruption, is in step 322 to the personal computer 8th pass (symbolically represented by dotted arrow). There, this information is provided by the offline component 9 in step 221 in hard disk space 13 stored. The information that it is an interruption, z. B. in the form of the identification number of the interrupting function or the interrupt stored. The data buffer 5 on the engine control system 1 can, if used, be deleted or overwritten. After executing step 322 is the execution of the runtime handler 3 finished (step 314 ).
[0075] InSchritt 222 in 2 wird dann die Unterbrechung(wobei es sich sinngemäß auch umeine Unterbrechung durch mehrere Funktionen oder Interrupts handelnkann) abgearbeitet. Nach Beendigung der Unterbrechung wird in Schritt 224 wiederumder Laufzeithandler 3 aufgerufen. Wie oben beschrieben, wirddann erneut nach den Schritten 312 (d. h. falls es sichin Schritt 216 bei der unterbrochenen Funktion um die vorgegebeneFunktion handelt) und 316 in 3 Schritt 326 ausgeführt. InSchritt 322 wird die in Schritt 326 generierteZeitinformation an den Personal Computer 8 übergebensowie eine Informati on, die kenntlich macht, dass es sich um dasEnde einer Unterbrechung handelt. Diese Informationen werden wiederumin Schritt 221 im Festplattenspeicher 13 abgespeichert.In step 222 in 2 Then the interruption (which may also be an interruption by several functions or interrupts) is processed. After completion the interruption will be in step 224 turn the runtime handler 3 called. As described above, then again after the steps 312 (ie if it is in step 216 when the interrupted function is the default function) and 316 in 3 step 326 executed. In step 322 will be the one in step 326 Generated time information to the personal computer 8th and information indicating that it is the end of an interruption. This information will turn in step 221 in hard disk space 13 stored.
[0076] NachBeendigung des Laufzeithandlers 3 ist die Unterbrechungsroutinebeendet, und es erfolgt in Schritt 226 in 2 eineRückkehrzur Abarbeitung der Funktion, d. h. Verfahrensschritt 216 wirdweiter abgearbeitet. Weitere Unterbrechungen führen zu erneuter Abarbeitungder Unterbrechungsroutine 220 bis 224.After completion of the term handler 3 the interrupt routine is finished and it is done in step 226 in 2 a return to the execution of the function, ie process step 216 will be processed further. Further interruptions lead to renewed execution of the interrupt routine 220 to 224 ,
[0077] NachBeendigung der Abarbeitung der Funktion in Schritt 216 wirdin Schritt 228 erneut der Laufzeithandler 3 aufgerufen.Nach der Abfrage in Schritt 312, ob es sich um die vorgegebeneFunktion handelt wird in Schritt 316 wieder der Aufrufsgrunddes Laufzeithandlers 3 abgefragt. Diesmal handelt es sichum einen Aufruf infolge einer Beendigung der Abarbeitung einer Funktion.Daher wird dann unmittelbar nach Schritt 316 unter Umgehungder Abfrage der Umgebungsbedingungen (Schritt 318) Schritt 320 ausgeführt. InSchritt 320 wird eine Zeitinformation generiert, gemeinsammit einer Information, dass es sich um das Ende der Abarbeitungder Funktion handelt. Diese Informationen werden in Schritt 322 an denPersonal Computer 8 übergeben,wo sie wiederum in Schritt 221 durch die Offline-Komponente 9 im Festplattenspeicher 13 abgespeichertwerden.After completion of the function in step 216 will be in step 228 again the runtime handler 3 called. After the query in step 312 whether it is the default function is in step 316 again the call reason of the runtime handler 3 queried. This time it is a call due to a completion of the execution of a function. Therefore, then immediately after step 316 bypassing the polling of the environmental conditions (step 318 ) Step 320 executed. In step 320 a time information is generated, together with an information that it is the end of the execution of the function. This information will be in step 322 to the personal computer 8th pass where they turn in step 221 through the offline component 9 in hard disk space 13 be stored.
[0078] Weiterhinwird in Schritt 324 abgefragt, ob der Laufzeithandler 3 aufgrundeines Beginns oder eines Endes der Abarbeitung der Funktion aufgerufenwurde. Da es sich nun um einen Aufruf nach Beendigung der Abarbeitungder Funktion handelt, wird Schritt 328 ausgeführt.Furthermore, in step 324 queried if the runtime handler 3 was called due to a start or an end of the execution of the function. Since it is now a call after completion of the execution of the function, step 328 executed.
[0079] InSchritt 328 wird die Zyklenzähler-Variable Z um eins erhöht. Dannerfolgt in Schritt 330 eine Abfrage, ob die Zyklenzähler-VariableZ bereits größer istals die in Schritt 208 bzw. Schritt 234 (sieheunten) von der Offline-Komponente 9 an das Motorsteuerungsprogramm 2 übergebeneZyklenzahl W. Wenn dies der Fall ist, so ist die Laufzeitmessungder vorgegebenen Funktion mit der vorgegebenen Anzahl von Wiederholungenwiederholt durchgeführt,und die Messung wird beendet.In step 328 the cycle counter variable Z is increased by one. Then done in step 330 a query whether the cycle counter variable Z is already greater than that in step 208 or step 234 (see below) from the offline component 9 to the engine control program 2 If this is the case, then the transit time measurement of the given function with the predetermined number of repetitions is repeatedly performed, and the measurement is terminated.
[0080] DieBeendigung der Laufzeitmessung erfolgt dadurch, dass der Laufzeithandler 3 inSchritt 332 der Offline-Komponente 9 eine Information übermittelt, dassdie Laufzeit der vorgegebenen Funktion (bzw. Funktionen) mit dervorgegebenen Anzahl von Wiederholungen gemessen wurde. Entsprechendkann dann eine Auswertung der Daten erfolgen und eine neue Funktionbzw. eine neue Liste von Funktionen vorgegebenen werden. Nach Schritt 332 wirdder Laufzeithandler dann beendet.The termination of the transit time measurement takes place in that the runtime handler 3 in step 332 the offline component 9 communicates an information that the duration of the predetermined function (or functions) was measured with the predetermined number of repetitions. Accordingly, an evaluation of the data can then take place and a new function or a new list of functions can be specified. After step 332 the runtime handler is then terminated.
[0081] ImSchritt 230 findet optional und unabhängig vom Ablauf des Motorsteuerungsprogramms 2 eineZwischenverarbeitung der im Festplattenspeicher 13 gespeichertenDaten durch die Offline-Komponente 9 statt.Dabei kann es sich um eine Vorverarbeitung der Daten (z. B. einOrdnen, Berechnen der Nettolaufzeit, Katalogisieren oder Versehenmit Zusatzinformationen, die Angaben über die Messbedingungen derLaufzeitmessung enthalten) handeln, oder bereits um eine vollständige Auswertungder Daten der Laufzeitmessung.In step 230 takes place optionally and independently of the sequence of the engine control program 2 an intermediate processing of the hard disk space 13 stored data through the offline component 9 instead of. This can be a preprocessing of the data (eg an ordering, calculation of the net runtime, cataloging or oversight with additional information containing information about the measurement conditions of the transit time measurement), or already a complete evaluation of the data of the transit time measurement.
[0082] Ineiner darauffolgenden Abfrage 232 überprüft dann die Offline-Komponente 9,ob bereits alle vom Benutzer vorgegebenen Funktionen einer Laufzeitmessungunterzogen worden sind. Dies kann beispielsweise dadurch erfolgen,dass die Liste der Identifikationsnummern der vom Benutzer für die LaufzeitmessungausgewähltenFunktionen verglichen wird mit den im Festplattenspeicher 13 abgespeichertenIdentifikationsnummern der bereits einer Laufzeitmessung unterzogenenFunktionen. Auch weitere Abbruchkriterien können in Schritt 232 überprüft werden.In a subsequent query 232 then check the offline component 9 whether all the functions specified by the user have already been subjected to transit time measurement. This can be done, for example, by comparing the list of identification numbers of the functions selected by the user for the transit time measurement with those in the hard disk memory 13 stored identification numbers of the already subjected to a transit time measurement functions. Also other termination criteria may be in step 232 be checked.
[0083] Fallsnoch nicht alle vom Benutzer ausgewählten Funktionen einer Laufzeitmessungunterzogen wurden, übergibtdie Offli ne-Komponente 9 im Schritt 234 die Identifikationsnummereiner noch nicht gemessenen Funktion an das Motorsteuerungsprogramm 2.Alternativ zum dargestellten Ausführungsbeispiel könnte dieOffline-Komponente 9 auch Schritt 208 erneut ausführen.If not all of the functions selected by the user have been run-time tested, the off-line component passes 9 in step 234 the identification number of a not yet measured function to the engine control program 2 , As an alternative to the illustrated embodiment, the offline component could 9 also step 208 run again.
[0084] Wenndie Laufzeiten aller ausgewählten Funktionenunter den vorgegebenen Messbedingungen gemessenen worden sind, wirddie Offline-Komponente in Schritt 236 beendet. Falls bereitseine vollständigeoder teilweise Verarbeitung der Messdaten in Schritt 230 erfolgtist, so werden die Ergebnisse dieser Verarbeitung in einen weiterenDatenspeicher abgespeichert oder dem Benutzer auf andere Weise zurVerfügunggestellt, beispielsweise durch grafische Darstellung auf dem Bildschirm 11 oder durcheinen Ausdruck auf Papier. Eine weitere Auswertung und Aufbereitungder Ergebnisse kann mit kommerziell verfügbaren Computerprogrammen,wie z. B. Tabellenverarbeitungsprogrammen oder Computerprogrammenzur statistischen Analyse, erfolgen (Schritt 238). Einwesentlicher Bestandteil der Auswertung der Ergebnisse ist die Berechnungder Längevon Zeitintervallen durch Bildung von Differenzen zwischen den Zeitpunktenzusammengehöriger Stopp-und Startsignale. Wurde die Ausführungeiner Funktion unterbrochen, so sind die Längen der Teilintervalle, während dererdie Funktion ausgeführtwurde, zu addieren. Weiterhin kann das Computerprogramm zur Auswertungstatistische Aussagen über Mittelwertund Streuung der gemessenen Laufzeiten treffen und die Ergebnissegrafisch aufbereiten.When the run times of all selected functions have been measured under the given measurement conditions, the offline component in step 236 completed. If already a complete or partial processing of the measurement data in step 230 is done, the results of this processing are stored in another data store or made available to the user in other ways, for example by graphical representation on the screen 11 or by a printout on paper. Further evaluation and processing of the results can be done with commercially available computer programs, such. Table processing programs or computer programs for statistical analysis (step 238 ). An essential part of the evaluation of the results is the calculation of the length of time intervals by the formation of differences between the times of related stop and start signals. If the execution of a function has been interrupted, the lengths of the subintervals during which the function was executed must be added. Furthermore, the computer program for evaluation can make statistical statements about mean and scatter of the measured transit times and graphically process the results.
权利要求:
Claims (12)
[1]
Verfahren zur Laufzeitmessung einer vorgegebenenFunktion eines ersten Computerprogramms (2), das von einemersten Computersystem (1) ausgeführt wird, a) wobei einzweites Computerprogramm (Offline-Komponente, 9) auf einem zweitenComputersystem (8) dem auf dem ersten Computersystem (1) ausgeführten erstenComputerprogramm (2) vorgibt, welche Funktion die vorgegebeneFunktion ist; b) wobei die folgenden Schritte mit einer Anzahlvon Wiederholungen wiederholt auf dem ersten Computersystem (1)durchgeführtwerden: b1) wenn das erste Computerprogramm (2) eineerste Funktion aufruft, ruft das erste Computerprogramm (2)zu Beginn und zum Ende der Abarbeitung der ersten Funktion einezweite Funktion (Laufzeithandler, 3) auf; b2) der Laufzeithandler(3) prüft,ob die erste Funktion die vorgegebene Funktion ist und ruft, soferndiese Bedingung erfülltist, eine dritte Funktion (Zeitstempel-Funktion, 4) auf; b3)die Zeitstempel-Funktion (4) stellt mindestens eine Zeitinformationzur Verfügung;und b4) der Laufzeithandler (3) übergibt die mindestens einevon der Zeitstempel-Funktion (4) zur Verfügung gestellteZeitinformation nach jedem Aufruf an das zweite Computersystem (8)oder an ein weiteres Computersystem.Method for measuring the transit time of a predetermined function of a first computer program ( 2 ) generated by a first computer system ( 1 ) a) wherein a second computer program (offline component, 9 ) on a second computer system ( 8th ) on the first computer system ( 1 ) executed first computer program ( 2 ) specifies which function is the given function; b) wherein the following steps are repeated with a number of repetitions on the first computer system ( 1 ) b1) if the first computer program ( 2 ) calls a first function, the first computer program ( 2 ) at the beginning and at the end of the execution of the first function, a second function (Runtime handler, 3); b2) the term handler ( 3 ) checks if the first function is the default function and, if this condition is met, invokes a third function (timestamp function, 4); b3) the timestamp function ( 4 ) provides at least one piece of time information; and b4) the term handler ( 3 ) passes the at least one of the timestamp function ( 4 ) provided time information after each call to the second computer system ( 8th ) or another computer system.
[2]
Verfahren nach dem vorhergehenden Anspruch, wobeider Laufzeithandler (3) zusätzlich überprüft, ob mindestens ein Signaleine vorgegebene Bedingung erfüllt.Method according to the preceding claim, wherein the runtime handler ( 3 ) additionally checks whether at least one signal fulfills a predetermined condition.
[3]
Verfahren nach einem der vorhergehenden Ansprüche, – wobeizusätzlichbei jeder Unterbrechung der Ausführungder vorgegebenen Funktion zu Beginn und Ende der Unterbrechung dieZeitstempel-Funktion (4) aufgerufen wird; und – wobeider Laufzeithandler die mindestens eine von der Zeitstempel-Funktion(4) zur Verfügunggestellte Information in einem Datenspeicher auf dem zweiten Computersystem(8) speichert.Method according to one of the preceding claims, - in addition, at each interruption of the execution of the predetermined function at the beginning and end of the interruption, the time stamp function ( 4 ) is called; and - wherein the runtime handler performs the at least one of the time stamping function ( 4 ) in a data memory on the second computer system ( 8th ) stores.
[4]
Verfahren nach einem der vorhergehenden Ansprüche, wobeidie Offline-Komponente (9) dem auf dem ersten Computersystem(1) ausgeführten erstenComputerprogramm (2) zusätzlich die Anzahl von Wiederholungenvorgibt.Method according to one of the preceding claims, wherein the offline component ( 9 ) on the first computer system ( 1 ) executed first computer program ( 2 ) additionally specifies the number of repetitions.
[5]
Computerprogramm, dadurch gekennzeichnet, dass esbei Ablauf auf einem Computer oder Computer-Netzwerk das Verfahren nach einem der vorhergehendenVerfahrensansprücheausführt.Computer program, characterized in that itat expiration on a computer or computer network the procedure according to one of the precedingmethod claimsperforms.
[6]
Computerprogramm mit Programmcode-Mitteln, um einVerfahren gemäß einemder vorhergehenden Verfahrensansprüche durchzuführen, wenn dasComputerprogramm auf einem Computer oder Computer-Netzwerk ausgeführt wird.Computer program with program code means to aMethod according to oneto carry out the preceding method claims, if theComputer program is running on a computer or computer network.
[7]
Computerprogramm mit Programmcode-Mitteln gemäß dem vorhergehendenAnspruch, die auf einem computerlesbaren Datenträger gespeichert sind.Computer program with program code means according to the preceding oneClaim stored on a computer-readable medium.
[8]
Datenträgeroder Computersystem, auf dem eine Datenstruktur gespeichert ist,die nach einem Laden in einen Arbeits- und/oder Hauptspeicher eines Computersoder Computer-Netzwerkesdas Verfahren nach einem der vorhergehenden Verfahrensansprüche ausführt.diskor computer system on which a data structure is stored,after loading into a working and / or main memory of a computeror computer networkthe method according to one of the preceding method claims executes.
[9]
Computerprogramm-Produkt mit auf einem maschinenlesbarenTrägergespeicherten Programmcode-Mitteln, um alle Schritte gemäß einem dervorhergehenden Verfahrensansprüchedurchzuführen,wenn das Programm auf einem Computer oder Computer-Netzwerk ausgeführt wird.Computer program product with on a machine-readablecarrierstored program code means to all steps according to one ofprevious method claimsperform,if the program is running on a computer or computer network.
[10]
Moduliertes Datensignal, welches von einem Computersystemoder Computernetzwerk ausführbareInstruktionen zum Ausführeneines Verfahrens nach einem der vorhergehenden Verfahrensansprüche enthält.Modulated data signal coming from a computer systemor computer network executableInstructions to executea method according to any one of the preceding method claims.
[11]
Computersystem oder Computernetzwerk, gekennzeichnetdurch mindestens eine Einrichtung, die den Ablauf eines Verfahrensnach einem der vorhergehenden Verfahrensansprüche erlaubt.Computer system or computer networkby at least one device that determines the course of a procedureallowed according to one of the preceding method claims.
[12]
Anordnung zur Laufzeitmessung einer vorgegebenenFunktion eines ersten Computerprogramms (2), das von einemersten Computersystem (1) ausgeführt wird, wobei die Anordnungfolgendes aufweist: a) Mittel zum Ausführen des ersten Computerprogramms(2); b) Mittel zum Aufrufen und Abarbeiten einer ersten Funktionwährendder Abarbeitung des ersten Computerprogramms (2); c)Mittel zum Aufrufen und Abarbeiten einer zweiten Funktion (Laufzeithandler,3) zu Beginn und zum Ende der Abarbeitung der ersten Funktion, – wobeidie Mittel zum Abarbeiten des Laufzeithandlers (3) folgendesaufweisen: c1) Mittel zum Überprüfen, obdie erste Funktion die vorgegebene Funktion ist; c2) Mittelzum Aufrufen und Abarbeiten einer dritten Funktion (Zeitstempel-Funktion,4), abhängigvon den Überprüfungsmitteln, – wobeidie Mittel zum Abarbeiten der Zeitstempel-Funktion (4) Mittel zum Zurverfügungstellenmindestens einer Zeitinformation aufweisen; und c3) Mittelzum Übergebender mindestens einen von der Zeitstempel-Funktion (4) zurVerfügunggestellten Zeitinformation an ein zweites Computersystem (8)nach jedem Aufruf des Laufzeithandlers (3).Arrangement for measuring the transit time of a predetermined function of a first computer program ( 2 ) generated by a first computer system ( 1 ), the arrangement comprising: a) means for executing the first computer program ( 2 ); b) means for calling and executing a first function during the execution of the first computer program ( 2 ); c) means for calling and executing a second function (runtime handler, 3) at the beginning and at the end of the execution of the first function, - the means for processing the runtime handler ( 3 ): c1) means for checking if the first function is the default function; c2) means for calling and executing a third function (time stamp function, 4), dependent on the checking means, - the means for executing the time stamp function ( 4 ) Have means for providing at least one time information; and c3) means for passing the at least one of the timestamp function ( 4 ) provided time information to a second computer system ( 8th ) after each call of the runtime handler ( 3 ).
类似技术:
公开号 | 公开日 | 专利标题
DE102014116831B4|2020-10-22|System for monitoring the service life of brake pads
DE102016009032B4|2018-10-04|Machine learning unit, spindle replacement judgment apparatus, control, machine tool, production system and machine learning method capable of judging the necessity of a spindle replacement
EP0645704B1|1997-11-26|Tracer-System zur Fehleranalyse in laufenden Realzeitsystemen
DE10219832B4|2005-12-01|Method for coding control devices in means of transport
EP2564049B1|2020-02-26|STEUERGERÄT UND VERFAHREN ZUR BERECHNUNG EINER AUSGANGSGRÖßE FÜR EINE STEUERUNG
EP0655682B1|2000-05-31|Recheneinheit mit mehreren ausführbaren Tasks
DE60027298T2|2006-09-28|METHOD AND SYSTEM FOR REGULATING BACKGROUND PROCESSES WITH PERFORMANCE MEASUREMENT DATA
DE60007900T2|2004-12-30|SYSTEM AND METHOD FOR COMMUNICATION BETWEEN VEHICLES AND A MONITORING CENTER
EP1989601B1|2010-11-24|System und verfahren zur analyse eines fertigungsprozesses
EP1470459B1|2005-08-17|Frühzeitige prognose der zuverlässigkeit einer technischen anordnung
EP1810096B1|2011-06-15|Verfahren zum austauschen von daten zwischen teilnehmern aus verschiedenen netzwerken
EP1330685B1|2012-12-12|Prüfverfahren und prüfvorrichtung zur inbetriebnahme von mittels einer programmlogik gesteuerten systemen
DE10119197A1|2002-04-18|Electronic control device for vehicles
DE10244131A1|2004-04-08|Method for supporting identification of a defective functional unit in a technical system
EP1543389A1|2005-06-22|Verfahren und rechnersystem zum betreiben von mindestens zwei miteinander verbundenen steuergeräten
EP0228480A1|1987-07-15|Verfahren und Einrichtung zur Analyse von Steuerprogrammen
DE112009000439T5|2011-03-17|A vehicle information recording device, a vehicle information communication system, and a vehicle information communication method
EP2705430A1|2014-03-12|System zur diagnose einer komponente in einem fahrzeug
WO2004010645A1|2004-01-29|Busstation mit integrierter busmonitorfunktion
DE102004023450B4|2008-10-02|System and method for diagnosing sensors of an engine control system
EP0753168B1|1998-06-03|Verfahren zur automatischen diagnose von störungsfällen
DE10346478A1|2005-05-25|Flexible software update for automation systems via the Internet
EP2194432A1|2010-06-09|Scheduling-Verfahren
EP2009525B1|2011-11-02|Testvorrichtung zum Testen wenigstens eines elektronischen Steuerungssystems und Verfahren dazu
DE19844994A1|2000-04-06|Method of diagnosing a steady lambda probe
同族专利:
公开号 | 公开日
FR2871592A1|2005-12-16|
ITMI20051071A1|2005-12-16|
DE102004028819B4|2006-10-19|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
US6079032A|1998-05-19|2000-06-20|Lucent Technologies, Inc.|Performance analysis of computer systems|CN101440748B|2007-04-30|2010-06-09|哈尔滨工程大学|柴油机多功能机旁控制方法|US4677580A|1984-09-24|1987-06-30|Gte Communication Systems Corporation|Real time usage indicator for a processor system|
US6154857A|1997-04-08|2000-11-28|Advanced Micro Devices, Inc.|Microprocessor-based device incorporating a cache for capturing software performance profiling data|FR3060149A1|2016-12-12|2018-06-15|Continental Automotive France|METHOD FOR DIAGNOSING TASK SCHEDULING|
法律状态:
2006-01-12| OP8| Request for examination as to paragraph 44 patent law|
2007-04-19| 8364| No opposition during term of opposition|
2008-09-04| 8327| Change in the person/name/address of the patent owner|Owner name: CONTINENTAL AUTOMOTIVE GMBH, 30165 HANNOVER, DE |
2020-05-15| R084| Declaration of willingness to licence|
2020-06-03| R081| Change of applicant/patentee|Owner name: VITESCO TECHNOLOGIES GMBH, DE Free format text: FORMER OWNER: CONTINENTAL AUTOMOTIVE GMBH, 30165 HANNOVER, DE |
2022-01-01| R119| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee|
2022-01-18| R081| Change of applicant/patentee|Owner name: VITESCO TECHNOLOGIES GMBH, DE Free format text: FORMER OWNER: VITESCO TECHNOLOGIES GMBH, 30165 HANNOVER, DE |
优先权:
申请号 | 申请日 | 专利标题
DE200410028819|DE102004028819B4|2004-06-15|2004-06-15|Method for identifying and transmitting program durations in embedded systems|DE200410028819| DE102004028819B4|2004-06-15|2004-06-15|Method for identifying and transmitting program durations in embedded systems|
ITMI20051071| ITMI20051071A1|2004-06-15|2005-06-10|"procedimento per determinare e trasmettere tempi di funzionamento in sistemi incorporati"|
FR0505964A| FR2871592A1|2004-06-15|2005-06-13|METHOD FOR SEARCHING AND TRANSMITTING PROGRAM EXECUTION TIMES IN ONBOARD SYSTEMS|
[返回顶部]